package zpe.model;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import zpe.genericcrud.model.Entidade;

@Table(name="tb_admissao_regime",schema="dbo")
@Entity
public class AdmissaoRegime implements Entidade {
	
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="ci_admissao_regime")
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;
	
	@Column(name="nr_declaracao")
	private Long numeroDeclaracao;
	
	@Column(name="nr_adicao")
	private Long numeroAdicao;
	
	@Column(name="nr_item_adicao")
	private Long numeroItemAdicao;
	
	@Column(name="vl_aduaneiro")
	private BigDecimal valorAduaneiro;
	
	@Column(name="vl_imposto_imp")
	private BigDecimal valorImpostoImp;
	
	@Column(name="vl_ipi_vinculado")
	private Double valorIPIVinculadoSuspenso;
	
	@Column(name="vl_imposto_suspenso")
	private Double valorIPISuspenso;
	
	@Column(name="vl_afrmm")
	private Double valorAFRMM;
	
	@Column(name="vl_confins_suspenso")
	private Double valorCONFINSSuspenso;
	
	@Column(name="vl_confins_imp")
	private Double valorCONFINSImportacao;
	
	@Column(name="vl_pispasep_suspenso")
	private Double valorPISPASEPSuspensao;
	
	@Column(name="vl_pispasep_imp")
	private Double valorPISPASESPImportacao;
	
	@Column(name="vl_vmld")
	private BigDecimal valorVMLD;
	
	@Column(name="dt_registro")
	private Date registro;
	
	@Column(name="dt_desembaraco")
	private Date desembaraco;

	@OneToOne
	@JoinColumn(name = "cd_carga")
	private Carga carga;
	
	
	public Carga getCarga() {
		return carga;
	}

	public void setCarga(Carga carga) {
		this.carga = carga;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getNumeroDeclaracao() {
		return numeroDeclaracao;
	}

	public void setNumeroDeclaracao(Long numeroDeclaracao) {
		this.numeroDeclaracao = numeroDeclaracao;
	}

	public Long getNumeroAdicao() {
		return numeroAdicao;
	}

	public void setNumeroAdicao(Long numeroAdicao) {
		this.numeroAdicao = numeroAdicao;
	}

	public Long getNumeroItemAdicao() {
		return numeroItemAdicao;
	}

	public void setNumeroItemAdicao(Long numeroItemAdicao) {
		this.numeroItemAdicao = numeroItemAdicao;
	}

	public BigDecimal getValorAduaneiro() {
		return valorAduaneiro;
	}

	public void setValorAduaneiro(BigDecimal valorAduaneiro) {
		this.valorAduaneiro = valorAduaneiro;
	}

	public BigDecimal getValorImpostoImp() {
		return valorImpostoImp;
	}

	public void setValorImpostoImp(BigDecimal valorImpostoImp) {
		this.valorImpostoImp = valorImpostoImp;
	}

	public Double getValorIPIVinculadoSuspenso() {
		return valorIPIVinculadoSuspenso;
	}

	public void setValorIPIVinculadoSuspenso(Double valorIPIVinculadoSuspenso) {
		this.valorIPIVinculadoSuspenso = valorIPIVinculadoSuspenso;
	}

	public Double getValorIPISuspenso() {
		return valorIPISuspenso;
	}

	public void setValorIPISuspenso(Double valorIPISuspenso) {
		this.valorIPISuspenso = valorIPISuspenso;
	}

	public Double getValorAFRMM() {
		return valorAFRMM;
	}

	public void setValorAFRMM(Double valorAFRMM) {
		this.valorAFRMM = valorAFRMM;
	}

	public Double getValorCONFINSSuspenso() {
		return valorCONFINSSuspenso;
	}

	public void setValorCONFINSSuspenso(Double valorCONFINSSuspenso) {
		this.valorCONFINSSuspenso = valorCONFINSSuspenso;
	}

	public Double getValorCONFINSImportacao() {
		return valorCONFINSImportacao;
	}

	public void setValorCONFINSImportacao(Double valorCONFINSImportacao) {
		this.valorCONFINSImportacao = valorCONFINSImportacao;
	}

	public Double getValorPISPASEPSuspensao() {
		return valorPISPASEPSuspensao;
	}

	public void setValorPISPASEPSuspensao(Double valorPISPASEPSuspensao) {
		this.valorPISPASEPSuspensao = valorPISPASEPSuspensao;
	}

	public Double getValorPISPASESPImportacao() {
		return valorPISPASESPImportacao;
	}

	public void setValorPISPASESPImportacao(Double valorPISPASESPImportacao) {
		this.valorPISPASESPImportacao = valorPISPASESPImportacao;
	}

	public BigDecimal getValorVMLD() {
		return valorVMLD;
	}

	public void setValorVMLD(BigDecimal valorVMLD) {
		this.valorVMLD = valorVMLD;
	}

	public Date getRegistro() {
		return registro;
	}

	public void setRegistro(Date registro) {
		this.registro = registro;
	}

	public Date getDesembaraco() {
		return desembaraco;
	}

	public void setDesembaraco(Date desembaraco) {
		this.desembaraco = desembaraco;
	}

	@Override
	public Map<String, Object> notEmptyFields() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		AdmissaoRegime other = (AdmissaoRegime) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

	
}
